package com.ssl.security.constants;

import com.ssl.security.exception.SecurityException;

/**
 * 描述：密钥工厂算法
 *
 * @author ssl
 * @create 2021/4/1 0001.
 */
public enum KeyFactoryAlgEnum {
    // Diffie Hellman密钥协议算法的密钥,key.getAlgorithm（）将返回“DH”，而不是“DiffieHellman”
    DiffieHellman,
    // DSA 算法
    DSA,
    // RSA 算法（签名、加密）
    RSA,
    // PSS 算法 (签名)
    RSASSA_PSS,
    // 椭圆曲线算法的密钥
    EC,;

    public String getValue() throws SecurityException {
        switch (this) {
            case DiffieHellman:
                return "DiffieHellman";
            case DSA:
                return "DSA";
            case RSA:
                return "RSA";
            case RSASSA_PSS:
                return "RSASSA-PSS";
            case EC:
                return "EC";
            default:
                throw new SecurityException("不支持的 keyFactory 算法。");
        }
    }

}
